package com.vhall.component.entity.data.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.vhall.component.entity.data.enums.DataStatusEnum;
import com.vhall.component.framework.common.annotation.ParamName;
import com.vhall.component.plugin.common.annotation.CheckTimeInterval;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 数据统计查询条件
 *
 * @author kainan.li
 * @date 2021/4/26
 */
@Data
@CheckTimeInterval
public class DataExportParamVO implements Serializable {

    /**
     * 该字段不由前端传
     */
    private Integer ilId;

    @ParamName("room_id")
    @JsonProperty("room_id")
    private String roomId;

    @ParamName("start_time")
    @JsonProperty("start_time")
    @NotBlank(message = "start_time开始时间不能为空")
    private String startTime;

    @ParamName("end_time")
    @JsonProperty("end_time")
    @NotBlank(message = "end_time结束时间不能为空")
    private String endTime;

    @NotBlank(message = "不能为空")
    private String export;

    /**
     * 1 全部  2直播中  3直播回放
     * {@link  DataStatusEnum}
     */
    @Range(min = 0, max = 3, message = "status 应在0-3之间")
    private Integer status;

    @Range(min = 0)
    private Integer page;

    @ParamName("page_size")
    @JsonProperty("page_size")
    @Range(min = 1)
    private Integer pageSize;

    @ParamName("source_id")
    @JsonProperty("source_id")
    private String sourceId;

    private String accountId;

    private Integer offset;

    private String token;


}
